Most communication networks typically include multiple interconnected systems, each of which provides some identifiable service or capability, such as Internet connectivity, file download capability, and push-to-talk (PTT) functionality, to a network user. Further, the user may utilize several of these services during a single user “session,” or logical connection between the user and the network. In response to the user employing the various services, each of the individual systems typically generates data records indicating the employed service, a user identifier (such as a network address identifier, or “NAI”), and other information useful in determining an amount to charge the user for the service. The charges may be based on a length of time, an amount of data, a number of accesses, or other unit of measure associated with the service. Thereafter, the data records are routed to one or more billing systems, which the communication service provider processes to bill the user for charges accumulated over a period of time, such as a month, which may encompass many user sessions.
In some circumstances, charges associated with one service may affect the amount charged for another service used during the same session. For example, a user may be charged for a total number of bytes transferred during a session by one system, while also being charged for a specific file download during that same session. Under such conditions, the service provider may reduce the charge for the total number of bytes transferred by the size of the file download to eliminate any potential double-billing. To this end, the billing systems often attempt to identify all of the charges associated with a particular user session to reconcile or correlate those charges. To aid in this identification, each system providing a service often indicates the time period of the session, such as a start time and a stop time for the session, along with the user identifier in the data records transferred to the billing system. In other cases, each system may also provide a session identifier. Since each system generates a separate time period and session identifier for each user session, the time periods cited by each system may not closely align with each other, and the identifiers are not likely to match, thus introducing some inaccuracy in identifying all relevant charges for that session. Further, identifying all of the data records for a particular user session in this manner may be considered rather complex and time-consuming, even when a separate mediation system is employed to perform this task.